//package com.xAdmin.util;
//
//
//import cn.dev33.satoken.stp.StpUtil;
//import com.xAdmin.config.exception.AdminException;
//import com.xAdmin.domain.entity.core.CoreUser;
//import com.xAdmin.domain.enums.SessionKeyEnum;
//import com.xAdmin.service.core.ICoreUserService;
//import org.springframework.context.ApplicationContext;
//import org.springframework.context.ApplicationContextAware;
//import org.springframework.stereotype.Component;
//
//
///**
// * 安全服务工具类
// *
// * @author ruoyi
// */
//@Component
//public class SecurityUtils implements ApplicationContextAware {
//    private static ApplicationContext applicationContext;
//
//    @Override
//    public void setApplicationContext(ApplicationContext context) {
//        applicationContext = context;
//    }
//
//    /**
//     * 获取当前登录用户
//     */
//    public static CoreUser getLoginUser() {
//        if (StpUtil.isLogin()) {
//            // 优先从 Session 中获取用户信息
//            CoreUser user = (CoreUser) StpUtil.getTokenSession().get(SessionKeyEnum.USER_LOGIN_SESSION.getKey());
//            if (user != null) {
//                return user;
//            } else {
//                // 如果 Session 中没有用户信息，则从数据库查询并缓存到 Session
//                Long userId = StpUtil.getLoginIdAsLong();
//                ICoreUserService userService = applicationContext.getBean(ICoreUserService.class);
//                user = userService.getById(userId);
//                if (user != null) {
//                    // 将用户信息缓存到 Session
//                    StpUtil.getTokenSession().set("user", user);
//                }
//                return user;
//            }
//        } else {
//            throw new AdminException("用户未登录");
//        }
//    }
//}